映射 map
说明
说明
-
map是一种无序的基于
key-value的数据结构 -
map必须使用
make()初始化才能使用
定义方式
说明
KeyType为健类型ValueType为健对应的值类型
map[KeyType]ValueType
使用示例
添加关联到 map 并访问关联和数据
使用 map() 定义
package main
import "fmt"
func main() {
m := make(map[string]int)
m["route"] = 66
fmt.Println(m["route"]) // 输出 66
v := m["route2"]
fmt.Println(v) // 输出 0,当尝试查找不存在的健,返回的是 ValueType 的默认值
}
声明时填充内容
package main
func main() {
m := map[string]string{
"W": "forward",
"A": "left",
"D": "right",
"S": "backward",
}
println(m["W"]) // 输出 forward
}
遍历map的键值对
遍历键和值
map的遍历过程使用 for range 循环完成
package main
import "fmt"
func main() {
m := make(map[string]int)
m["a"] = 1
m["b"] = 2
m["c"] = 3
for k, v := range m {
fmt.Println(k, v)
}
}
输出
a 1
b 2
c 3
只遍历值
注意
遍历值的输出是无序的
for _, v := range
如果需要特定顺序的遍历结果,正确的做法是排序
package main
import (
"fmt"
"sort"
)
func main() {
m := make(map[string]int)
// 准备map数据
m["a"] = 1
m["b"] = 2
m["c"] = 3
// 声明一个切片保存map数据
var s []string
// 将map数据遍历复制到切片中
for k := range m {
s = append(s, k)
}
// 对切片进行排序
sort.Strings(s)
fmt.Println(s) // 始终输出 [a b c]
}
只遍历键
for k := range